1: | active(from(X)) | → mark(cons(X,from(s(X)))) | |
2: | active(sel(0,cons(X,Y))) | → mark(X) | |
3: | active(sel(s(X),cons(Y,Z))) | → mark(sel(X,Z)) | |
4: | active(from(X)) | → from(active(X)) | |
5: | active(cons(X1,X2)) | → cons(active(X1),X2) | |
6: | active(s(X)) | → s(active(X)) | |
7: | active(sel(X1,X2)) | → sel(active(X1),X2) | |
8: | active(sel(X1,X2)) | → sel(X1,active(X2)) | |
9: | from(mark(X)) | → mark(from(X)) | |
10: | cons(mark(X1),X2) | → mark(cons(X1,X2)) | |
11: | s(mark(X)) | → mark(s(X)) | |
12: | sel(mark(X1),X2) | → mark(sel(X1,X2)) | |
13: | sel(X1,mark(X2)) | → mark(sel(X1,X2)) | |
14: | proper(from(X)) | → from(proper(X)) | |
15: | proper(cons(X1,X2)) | → cons(proper(X1),proper(X2)) | |
16: | proper(s(X)) | → s(proper(X)) | |
17: | proper(sel(X1,X2)) | → sel(proper(X1),proper(X2)) | |
18: | proper(0) | → ok(0) | |
19: | from(ok(X)) | → ok(from(X)) | |
20: | cons(ok(X1),ok(X2)) | → ok(cons(X1,X2)) | |
21: | s(ok(X)) | → ok(s(X)) | |
22: | sel(ok(X1),ok(X2)) | → ok(sel(X1,X2)) | |
23: | top(mark(X)) | → top(proper(X)) | |
24: | top(ok(X)) | → top(active(X)) | |
25: | ACTIVE(from(X)) | → CONS(X,from(s(X))) | |
26: | ACTIVE(from(X)) | → FROM(s(X)) | |
27: | ACTIVE(from(X)) | → S(X) | |
28: | ACTIVE(sel(s(X),cons(Y,Z))) | → SEL(X,Z) | |
29: | ACTIVE(from(X)) | → FROM(active(X)) | |
30: | ACTIVE(from(X)) | → ACTIVE(X) | |
31: | ACTIVE(cons(X1,X2)) | → CONS(active(X1),X2) | |
32: | ACTIVE(cons(X1,X2)) | → ACTIVE(X1) | |
33: | ACTIVE(s(X)) | → S(active(X)) | |
34: | ACTIVE(s(X)) | → ACTIVE(X) | |
35: | ACTIVE(sel(X1,X2)) | → SEL(active(X1),X2) | |
36: | ACTIVE(sel(X1,X2)) | → ACTIVE(X1) | |
37: | ACTIVE(sel(X1,X2)) | → SEL(X1,active(X2)) | |
38: | ACTIVE(sel(X1,X2)) | → ACTIVE(X2) | |
39: | FROM(mark(X)) | → FROM(X) | |
40: | CONS(mark(X1),X2) | → CONS(X1,X2) | |
41: | S(mark(X)) | → S(X) | |
42: | SEL(mark(X1),X2) | → SEL(X1,X2) | |
43: | SEL(X1,mark(X2)) | → SEL(X1,X2) | |
44: | PROPER(from(X)) | → FROM(proper(X)) | |
45: | PROPER(from(X)) | → PROPER(X) | |
46: | PROPER(cons(X1,X2)) | → CONS(proper(X1),proper(X2)) | |
47: | PROPER(cons(X1,X2)) | → PROPER(X1) | |
48: | PROPER(cons(X1,X2)) | → PROPER(X2) | |
49: | PROPER(s(X)) | → S(proper(X)) | |
50: | PROPER(s(X)) | → PROPER(X) | |
51: | PROPER(sel(X1,X2)) | → SEL(proper(X1),proper(X2)) | |
52: | PROPER(sel(X1,X2)) | → PROPER(X1) | |
53: | PROPER(sel(X1,X2)) | → PROPER(X2) | |
54: | FROM(ok(X)) | → FROM(X) | |
55: | CONS(ok(X1),ok(X2)) | → CONS(X1,X2) | |
56: | S(ok(X)) | → S(X) | |
57: | SEL(ok(X1),ok(X2)) | → SEL(X1,X2) | |
58: | TOP(mark(X)) | → TOP(proper(X)) | |
59: | TOP(mark(X)) | → PROPER(X) | |
60: | TOP(ok(X)) | → TOP(active(X)) | |
61: | TOP(ok(X)) | → ACTIVE(X) | |